HTTP协议

作者: ElfACCC | 来源:发表于2018-07-26 13:05 被阅读941次

    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():关闭资源

    相关文章

      网友评论

        本文标题:HTTP协议

        本文链接:https://www.haomeiwen.com/subject/oqwpmftx.html