之前已经简单的认识了一下HTTP协议
下面就看一下这个协议中一个重要的部分:请求
请求报文属于HTTP报文,是从客户端向服务端发送的请求
请求报文由三部分组成,分别是请求行(开始行),请求头(消息报头),请求正文(通常不用)
GET / HTTP/1.1 #请求行
Host: www.baidu.com #请求头
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: BAIDUID=E488017CE899228FF852BB2FA2762A62:FG=1; BIDUPSID=E488017CE899228FF852BB2FA2762A62; PSTM=1461377714; H_PS_PSSID=19003_17745_1434_18280_19781_19804_19806_19808_18559_15037_11966; BD_UPN=13314352; H_PS_645EC=556daOZJ2LejeLXIqU%2F9lyAAdB91FUm5%2FDSGrrkVbrESV9uFGgi7a4PwdfbO0YyMPSFx; BDSFRCVID=iFksJeC62RUdyn6RyrsGuyBx-2KKoWcTH6aoKGNAecjkR56n56F7EG0Pf3lQpYDbei5yogKKymOTHr7P; H_BDCLCKID_SF=tRKe_KDbJK03qRnnbJ5qhRIJbfTMeJQjaIOyB-OSHJOoDDvYQ4R5y4LdjG5NL438aJcNX4ob3-5BE4PzDxRvhp-S3-Aq54Ri32oC0RO_2M_hMRuGjxDbQfbQ0MDe2pojymna0RIaMR7JOpvwhfnxybjW0a62btt_JJ4OVCjP; BD_CK_SAM=1; BDRCVFR[Fc9oatPmwxn]=G01CoNuskzfuh-zuyuEXAPCpy49QhP8; BD_HOME=0
Connection: close
请求行也是由三个部分组成:请求方法,请求资源的URL,HTTP版本号
GET / HTTP/1.1
其中GET就是请求方法 ,/就是请求资源的url,HTTP/1.1是HTTP的版本号
常见的HTTP请求方法有这些:
GET:用于获取请求页面的请求信息。
HEAD:服务端不能响应里响应消息主题,通常用来测试服务端是否存活。
POST:向服务端发送大量数据,其中含有请求内容,安全性相对GET要高。
PUT:向服务端发送请求,将请求中的实体存储在请求资源下(文件上传)。
DELETE:向服务端请求删除请求资源(危险,一般不开放)。
TRACE:回显服务端收到的请求。
CONNECT:隧道代理,将服务器作为HTTP代理。
OPTIONS:向服务端发送请求,获取在请求/响应过程中可一使用的功能。
在请求头中是客户端向服务器发送传递请求的附加信息以及自身信息。
上面的请求头中有下面几种消息:
Host:被请求资源的internet主机和端口号。
User-Agent:客户端使用的浏览器,操作系统,版本以及其他信息。
Accept:客户端接收消息的类型。
Accept-Language:客户端支持的语言。
Accept-Encoding:客户端支持的编码格式。
Cookie:服务器与客户端之间传递的状态消息。
Connection:发送指定连接的选项。
除了上述这些,常见的消息还有:
Rerferer:访问当前URL的上一个URL(比较抽象)。
Range:请求实体的部分内容(通常用于多线程下载)。
Accept-Charset:制定客户端接收的字符集。