/*HTTP笔记*/

/HTTP笔记/
1.超文本传输协议,用于从万维网服务器传输超文本到本地浏览器的传送协议。
2.基于tcp/ip同词呢协议来传输数据,是属于应用层的面向对象的协议。
特点:
1.灵活:可以传输任何类型的数据对象,有content _type标记。
2.简单快捷:只需传送请求方式和路径。常用的请求方式get,post,head。
3.无状态:无状态是指对于事物处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息。则必须重传。
4.无连接:限制每次链接只处理一个请求。及每次处理完客户的请求,并收到客户的应答后,即断开连接。节省传输时间。
url:
http使用统一资源标识符来传输数据和建立连接,它包含用于查找某个资源足够的信息。(栗子)
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
组成:协议+域名+端口+虚拟目录部分+文件名部分+锚部分+参数部分
协议:http
域名:www.aspxfans.com
端口:8080(默认80)
虚拟目录文件:/new/
文件名:index .asp
锚部分:#name
参数部分:boardID=5&ID=24618&page=1
/uri和url的区别/
URI:统一资源标识符,用来唯一标识一个资源。
uri的组成:
1.访问资源的命名机制;
2.存放资源的主机名;
3.资源自身的名称,有路径表示,这种强调于资源。
URL:统一资源定位符,它是一种具体的uri,即url可以用来标识一个资源,而且还指明了如何定位这个资源。
url的组成:
1.协议或服务方式;
2.存有该资源的主机ip(端口);
3.主机资源的具体地址。
HTTP请求部分:(请求行+请求头部+空行+请求数据)

请求行:指定请求类型,要访问的资源以及使用的http版本
请求头部:说明服务要使用的附加信息
host指出请求的目的地址,User_Agent是浏览器类型检查的基础。
空行:空行是必须的
请求数据:数据主体
HTTP响应消息(状态行+消息报头+空行+响应正文)
状态行:协议版本+状态码+状态消息
消息报头:说明客户端要是用的一些附加消息,Content_Type指定了文件类别和编码
响应正文:服务器返回给客户端的文本信息。
/HTTP状态码:五类/
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–请求已经成功接收,理解,接受
3xx:重定向–要完成请求要进一步处理
4xx:客户端错误
5xx:服务器错误

200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

/HTTP请求/
http1.0:三种:get,post,head
http1.1:新增五种:poions,put,delete,trace,connect
get:请求指定的页面信息,并返回实体
head:返回的响应中没有具体内容,获取头部信息。
post:向指定资源提交数据进行处理请求。post请求后可能会导致新的资源的产生或已有资源的修改
options:允许客户端查看服务端的性能
put:从客户端传送的数据取代服务器指定的文档的内容
delete:请求服务器删除指定的页面
trace:辉县服务器收到的请求,用于测试或检测
connect:能将连接改为管道的代理服务器

/HTTP工作原理/
http协议采用请求/响应模型,客户端向服务器发送一个请求报文,请求报文包含请求方法,URL,协议版本,请求头部,请求数据。服务端以一个状态行作为响应报文,相应的内容包含协议的版本,成功或者错误代码,服务器信息,响应头部,和响应数据。
1.客户端连接到服务端
一个http客户端,通常是浏览器,与web服务端端口80建立一个tcp套接字。
2.发送http请求
通过tcp套接字,客户端发送一个请求报文。有请求行,请求头部,空行,和请求数据组成。
3.服务端接受请求并返回http响应
web服务器解析请求,定位请求资源。服务端将资源副本写到tcp套接字,有客户端读取。一个响应由状态行,响应头部,空行,相应数据组成。
4.释放连接tcp连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
5.客户端浏览器解析HTML内容

解析状态行,查看表明是否请求成功的状态码。 #解析每一个响应头,响应头告知一下为若干字的html文档和字符集 #客户端浏览器读取响应数据html,并根据html的格式解码,并在浏览器窗口显示。

我们看看GET和POST的区别

GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值