HTTP

HTTP协议

请求头都是以字符串的方式发送和解析的

  1. 底层是TCP/IP
  2. 默认端口号:80,我们打开域名默认添加了80
  3. 请求和响应对应
  4. 无状态,每次访问没有联系

客户端发送请求(request):

GET / HTTP/1.1 # 格式:请求方式|路径|HTTP版本
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0 # 缓存的最大周期
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36 # 浏览器的信息
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br # 压缩格式
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4 # 编码格式
Cookie: BAIDUID=7874FBE40A36835D1F29FDA453E70193:FG=1; PSTM=1498464660; BIDUPSID=D3F7611A19AE1C18A9B66329F1A9C6F9; BDUSS=zE5N0x2TUZITHV-dVpyMExnU0l3eW5BT3ppUjJvdEV2S2tTbElFdDF-Vk5lSTVaTVFBQUFBJCQAAAAAAAAAAAEAAABaMNpIQ2xhcm9qYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3rZllN62ZZY; MCITY=-315%3A; __cfduid=da3186a4d0f6ec740db5951f70cf4b8a41504752275; __cacheid=1506315722745625-3027136218; pgv_pvi=5447443456; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BD_CK_SAM=1; PSINO=3; BD_HOME=1; H_PS_PSSID=1458_21111_24022_20928; BD_UPN=123353; sugstore=1

1.起始行
格式:GET / HTTP/1.1
2.请求头
格式:param:value
Host:访问的服务器地址
User-Agent:告诉服务器浏览器的版本,通过这个参数解决不同浏览器的兼容问题
Accept:给我的文件格式是什么 */*是都可以
Referer:我的请求是从哪里来。1.防盗链 2.统计工作
Connecttion:keep-alive,保持连接,是HTTP1.1的特性

3.请求空行
做分行作用,主要对于Post方法

4.请求体

post有请求体 param=value(get没有请求体)

4.HTTP请求方式
GET 获取数据,放到请求头里,没有请求体,用?号传递数据

  1. 请求参数在请求行中,在url后。
  2. 请求的url长度有限制的

POST 修改数据,可以放在请求头里,也可以放在请求体里

  1. 请求参数在请求体中
  2. 请求的url长度没有限制的

PUT 保存数据
DELETE 删除数据
OPTION 询问服务器的支持特性
HEAD 返回报文头

服务器响应(response)

HTTP/1.1 200 OK #格式 HTTP版本|request执行是否成功的状态吗|
Bdpagetype: 2
Bdqid: 0x80ec36bf000098e8
Bduserid: 1222258778
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Mon, 23 Oct 2017 05:33:29 GMT
Expires: Mon, 23 Oct 2017 05:33:29 GMT
Server: BWS/1.1
Set-Cookie: BDSVRTM=275; path=/
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=1458_21111_24022_20928; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked
  1. 响应行
    HTTP/1.1 200 OK

状态码:302(重定向)304(访问缓存)400(客户端异常)500(服务器异常)

  1. 响应头
    Content-Type:响应体数据格式以及编码格式
    Content-disposition:什么格式打开响应体数据
    in-line:默认值,在当前页面内打开
    attachment;filename=xxx:以附件形式打开,文件下载
  2. 响应空行
  3. 响应体
    真实的数据

URL

URL(location):通过位置寻找
URN (Name):通过名字寻找
URI (Identifier):是URL和URN的合称
URL的组成:
方案|主机|[端口]|路径|查询|片段
http://www.baidu.com:80/index.html?q=“百度”#hook
方案:生命了访问的协议是什么,用冒号隔开,比如HTTP:
主机与端口:主机前用"//“斜杠,主机和端口之间用”:“隔开
路径:表明资源在服务器的位置
查询:向数据库发送请求,与之前的用”?“隔开,查询参数之间用”&“隔开
参数:发送的参数请求,参数之间用”;"隔开
片段:定位到网页的某个部分,用#隔开

http://write.blog.csdn.net/mdeditor#!postId=78318121
参考文献:
HTTP权威指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值