package ocsigenserver
A full-featured and extensible Web server
Install
Dune Dependency
Authors
Maintainers
Sources
5.1.2.tar.gz
md5=cc9afaa6cad28fb2b6c803ed6cec308f
sha512=9096bc31a55f9d47f5f9b708b16d8b32cfcab99e514bce086046cf78e9731076bf2adac7e68b4291f3a0e65048e70e7c43fa2df8b80ae0eed62840db3e216b77
doc/src/ocsigenserver.http/ocsigen_header.ml.html
Source file ocsigen_header.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
(* Ocsigen * http://www.ocsigen.org * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, with linking exception; * either version 2.1 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *) type t = Cohttp.Header.t let of_option = function Some h -> h | None -> Cohttp.Header.init () module Name = struct type t = string let of_string = String.lowercase_ascii let to_string s = s let accept = of_string "Accept" let accept_charset = of_string "Accept-Charset" let accept_encoding = of_string "Accept-Encoding" let accept_language = of_string "Accept-Language" let accept_ranges = of_string "Accept-Ranges" let = of_string "Authorization" let cache_control = of_string "Cache-Control" let connection = of_string "Connection" let content_disposition = of_string "Content-Disposition" let content_encoding = of_string "Content-Encoding" let content_range = of_string "Content-Range" let content_length = of_string "Content-Length" let content_type = of_string "Content-Type" let = of_string "Cookie" let date = of_string "Date" let etag = of_string "ETag" let expect = of_string "Expect" let expires = of_string "Expires" let host = of_string "Host" let if_match = of_string "If-Match" let if_modified_since = of_string "If-Modified-Since" let if_none_match = of_string "If-None-Match" let if_unmodified_since = of_string "If-Unmodified-Since" let if_range = of_string "If-Range" let last_modified = of_string "Last-Modified" let location = of_string "Location" let pragma = of_string "Pragma" let server = of_string "Server" let = of_string "Set-Cookie" let status = of_string "Status" let transfer_encoding = of_string "Transfer-Encoding" let user_agent = of_string "User-Agent" let referer = of_string "Referer" let range = of_string "Range" let x_forwarded_for = of_string "X-Forwarded-For" let x_forwarded_proto = of_string "X-Forwarded-Proto" (* CORS headers *) let origin = of_string "Origin" let access_control_request_method = of_string "Access-Control-Request-Method" let access_control_request_headers = of_string "Access-Control-Request-Headers" let access_control_allow_origin = of_string "Access-Control-Allow-Origin" let access_control_allow_credentials = of_string "Access-Control-Allow-Credentials" let access_control_expose_headers = of_string "Access-Control-Expose-Headers" let access_control_max_age = of_string "Access-Control-Max-Age" let access_control_allow_methods = of_string "Access-Control-Allow-Methods" let access_control_allow_headers = of_string "Access-Control-Allow-Headers" end let parse_star a = if a = "*" then None else Some a let parse_quality f s = try let a, b = Ocsigen_lib.String.sep ';' s in let q, qv = Ocsigen_lib.String.sep '=' b in if q = "q" then f a, Some (float_of_string qv) else failwith "Parse error" with _ -> f s, None module Mime_type = struct type t = string option * string option let parse a = let b, c = Ocsigen_lib.String.sep '/' a in parse_star b, parse_star c end module Accept = struct type t = (Mime_type.t * float option * (string * string) list) list let parse_extensions parse_name s = try let a, b = Ocsigen_lib.String.sep ';' s in ( parse_name a , List.map (Ocsigen_lib.String.sep '=') (Ocsigen_lib.String.split ';' b) ) with _ -> parse_name s, [] let parse_list_with_extensions parse_name s = List.map (Ocsigen_lib.String.split ',') s |> List.flatten |> List.map (parse_extensions parse_name) let parse s = try let l = parse_list_with_extensions Mime_type.parse s in let change_quality (a, l) = try let q, ll = Ocsigen_lib.List.assoc_remove "q" l in a, Some (float_of_string q), ll with _ -> a, None, l in List.map change_quality l with _ -> [] end module Accept_encoding = struct type t = (string option * float option) list let parse s = try List.map (Ocsigen_lib.String.split ',') s |> List.flatten |> List.map (parse_quality parse_star) with _ -> [] end module Accept_language = struct type t = (string * float option) list let parse s = try List.map (Ocsigen_lib.String.split ',') s |> List.flatten |> List.map (parse_quality (fun x -> x)) with _ -> [] end module Content_type = struct let choose accept default alt = try List.find (fun content_type -> let f = function | (Some a, Some b), _, _ -> a ^ "/" ^ b = content_type | _ -> false in List.exists f accept) (default :: alt) with Not_found -> default end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>