今天学习了http协议的有关内容,以下内容当做笔记,记录一下。
客户端连上web服务器之后,如要获取服务器上的web资源,需要遵守一定的通讯格式,http用于定义此格式。
浏览器与服务器之间通过http协议交互。
http协议包括http请求和http响应两种。
一个完整的http请求包括:一个请求行,若干消息头,实体内容。
//请求行
GET /index.php?tn=10018802_hao HTTP/1.1
解析:请求行用于描述客户端的请求方式(GET),请求的资源名(index.php)称,http协议的版本号(HTTP/1.1)
常用的请求方式有Get 和Post 默认Get,除了在Form中可以改成Post外,其他都是Get。
Get请求方式在url地址后的参数容量有限,不能超过1K,Post无限制
//消息头
解析:消息头用于描述客户端请求的哪台主机,以及客户端的一些环境信息
Accept: */*
--用于告诉服务器,客户机支持的数据类型
Referer: http://www.hao123.com/?tn=95085962_hao_pg
--客户机通过这个头,告诉服务器,客户机是从哪个页面来的(防盗链)
Accept-Language: zh-CN,en-US;q=0.5
--客户机的语言环境
Accept-Charset:客户机通过这个头,告诉服务器,它支持的编码
Accept-Encoding: gzip, deflate
--用于告诉服务器,客户机支持的数据压缩格式
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; InfoPath.3; .NET4.0C; Shuame)
--说明客户机操作系统信息,以及浏览器信息
If-Modified-Sice:客户机通过这个头,告诉服务器,数据缓存的时间
Host: www.baidu.com
--host用来描述请求的主机
Connection: Keep-Alive
--客户机通过这个头,可以带点数据给服务器
Cookie: BDRCVFR[rePVrIVEn7n]=9xWipS8B-FspA7EnHc1QhPEUf; H_PS_PSSID=1421; BDSFRCVID=QpLsJeCCxG03mET6-QD9VyQ_wvCwjeFp3e4p3J; H_BDCLCKID_SF=tRk8oI-XJCvbfP0k-4QEbbQH-UnLq-7tJT7Z0lOnMp02hn6H35DV0f01Bnr-QtQjBm63Qqjbbx75JKO_e6LbejO3eH_s5-6JHjQ33R7M2Ru_Hn7zepQ2XbtpbtbmhU-jtKj4-ILELl-BS4ThBnJ-Ln-qbtjjJ-LJ-n7ZVJO-KKCKhI-xDU5; BAIDUID=689041202EB9E3B31B55F72EF58A7FC4:FG=1; cflag=65535:1; BDRCVFR[RBkZbubvNqY]=9xWipS8B-FspA7EnHc1QhPEUf; BD_CK_SAM=1; BDSVRTM=0; H_PS_TIPFLAG=O; H_PS_TIPCOUNT=2
--客户机通过这个头,可以带点数据给服务器
//空白行
//请求数据