• http协议


    http协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

    HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果,媒体等)。

    HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

    1.http协议的主要特点

    1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

    2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

    3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

    5、支持B/S及C/S模式。

    http请求发法

    http1.0定义了3种请求方法:get,post,head方法
    http1.1新增了5种请求方法:options,put,delete,trace和connect方法

    响应状态码

    1:信息,服务器收到请求,需要请求这继续执行操作
    2
    :成功,操作被成功接收并处理
    3:重定向,需要进一步的操作以完成请求
    4
    :客户端错误,请求包含语法错误或午饭完成请求
    5**:服务器错误,服务器在处理请求的过程中发生了错误

    常见状态码和说明:
    200:请求成功,一般用于post和get请求
    302 Fund:临时移动,资源只是临时被移动,客户端应继续使用原有URI
    400 Bad Request:客户端请求有语法错误,不能被服务器所理解
    401 Unauthorized:请求要求用户的身份认证
    403 Forbidden:服务器理解用户端的请求,但是拒绝执行
    404 Not Found:服务器无法根据客户端的请求,找到资源
    500 Internal Server Error:服务器内部错误,无法完成请求
    503 Server Unavailable:由于超载或系统维护,服务器暂时无法处理客户端请求

    请求头与响应头

    消息头:包含请求网址、请求方法、远程地址、状态码

    Request URL: http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
    Request Method: POST
    Status Code: 200 OK
    Remote Address: 220.181.76.83:80
    Referrer Policy: no-referrer-when-downgrade
    

    请求头信息:
    Accept:浏览器可接受的MIME类型
    Accept-Encoding:浏览器能够进行解码的数据编码方式。比如gzip
    Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时会用到
    Connection:表示是否需要持久连接。从http/1.1起,默认都开启了Keep-Alive,保持连接特性
    Host:初始URL中主机和端口,它通常是从HTTP URL中提取出来的
    User-Agent:请求报头域允许客户端将他的操作系统、浏览器和其他属性告诉服务器。

    POST /translate_o?smartresult=dict&smartresult=rule HTTP/1.1
    Host: fanyi.youdao.com
    Connection: keep-alive
    Content-Length: 217
    Accept: application/json, text/javascript, */*; q=0.01
    Origin: http://fanyi.youdao.com
    X-Requested-With: XMLHttpRequest
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Referer: http://fanyi.youdao.com/
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    Cookie: OUTFOX_SEARCH_USER_ID=-325924448@183.158.179.92; OUTFOX_SEARCH_USER_ID_NCOO=846557085.0798807; JSESSIONID=aaaw_hQNEwgTShAqt0fCw; ___rl__test__cookies=1541990975607
    

    响应头:
    Content-Type:表示后面的文档属于MIME类型
    Date:当前GMT时间
    Server:包含了服务器用来处理请求的软件信息

    HTTP/1.1 200 OK
    Server: nginx
    Date: Mon, 12 Nov 2018 02:49:35 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Vary: Accept-Encoding
    Content-Encoding: gzip
    

    这篇帖子强烈推荐:https://www.cnblogs.com/ranyonsue/p/5984001.html

  • 相关阅读:
    day2 python基础
    day2 jmeter和charles
    nmon参数详解
    根据路径遍历该路径下的文件夹和文件并以列表形式显示出来、文件(夹)的复制
    GridView创建菜单栏
    GridView(网格视图)+MotionEvent(触控事件)实现可以拖动排序的网格图
    android 下拉刷新框架PullToRefreshScrollView(com.handmark.pulltorefresh)
    android轮播图的实现原理
    自定义进度条渐变色View
    android显示通知栏Notification以及自定义Notification的View
  • 原文地址:https://www.cnblogs.com/csj2018/p/9945325.html
Copyright © 2020-2023  润新知