webandroid团战兵器我爱编程

HTTP协议

2018-07-26  本文已影响941人  ElfACCC

HTTP请求

请求行

1)形式:请求方式  资源路径  协议版本号

2)eg. GET /index.php HTTP/1.1

请求行独占一行(第一行)

请求头

请求头就是各项协议内容:具体的协议内容不会每次都使用全部

1)Host::请求的主机地址(必须)

2)Accept:当前请求能够接收服务器返回的类型(MIME类型)

3)Accept-Language:接收的语言

4)User-Agent:客户浏览器所在点的一些信息

请求头不固定数量,每一个请求协议也是独占一行,最后有一个空行(用来区分请求头喝请求体)

请求体

请求数据:POST请求会有请求体。GET请求所有的数据都跟在URL之后,会在请求行的在资源路径上体现

基本格式:资源名字=资源值&资源名字=资源值……

HTTP响应

响应行

1)形式: 协议版本号 状态码 状态消息(独占一行)

HTTP/1.2 200 ok

2)200 ok:成功

3)403 forbidden :没权限访问

4)404 not found :没找到页面

5)500 server internal error:服务器内部错误

响应头

具体协议内容

1)时间:wed, 16 sep 2018 11:22:33 GMT

2)服务器:server:Apache/2/2/22(win32) PHP/5.3.13

3)内容长度:content-length:1571 是数据具体的字节数

3)内容类型:content-type:text/html 告诉浏览器对应的数据格式

响应头一个占一行,最后一行空行

响应体

实际服务器响应给浏览器的内容

常见HTTP状态码

1xx:服务器正在处理

200:成功

3xx:请求的目标已经转移或已更新

4xx:客户端出错

403:拒接访问

404:找不到

5xx:服务器错误

常见HTTP响应设置及使用

通过函数header 来实现修改HTTP响应(响应头)

注意事项:header可以设计HTTP响应,header设置响应体之前不要有任何输出

1)location:重定向,立即跳转(响应体不用解析)

浏览器在解析服务器的时候:盼盼定响应行,继续响应头,最后响应体:location是在响应头中,所以浏览器一旦剑道该协议项,不在向下解析。

2)refresh:重定向,定时跳转(响应体会解析)

会被解析 3s后再跳转

延时重定向:浏览器会根据具体时间延迟后,再访问指定跳转链接:浏览器在准备跳转访问之前,会继续解析HTTP协议(响应头和响应体)

3)content-type:内容类型,mime类型

通过内容告知,浏览器正确解析内容

4)content-disposition:内容类型,mime类型扩展,激活浏览器文件下载对话框

浏览器在解析内容时,默认是直接解析:有时候需要浏览器不解析,当做内容下载成文件

会下载

PHP模拟http请求

原理:

前提条件:http协议的客户端/服务端模式,HTTP协议不局限于一定要浏览器访问

curl扩展库使用

1)开启curl扩展

四步

1)建立连接:curl_init():激活一个curl连接功能

2)设置请求选项:curl_setOpt():设定选项

CUROPT_URL:连接对象

CURLOPT_RETURNTRANSFER:将服务器执行的结果(响应)以文件流的形式返回给请求界面(PHP脚本)

CURLOPT_POST:是否采用POST方式发起请求(默认请求时GET)

CURLOPT_POSTFIELDS:用来传递post提交的数据,分两种:字符串(name=abc&password=123)以及数组形式(array('name'=>'abc'),......)

CURLOPT_HEADER:是否得到相应的header信息(响应头),默认不获取

3)执行请求:curl_exec():执行选项(与服务器发起请求,得到服务器返回的内容)

4)关闭连接:curl_close():关闭资源

上一篇下一篇

猜你喜欢

热点阅读